/*                          UX-Framework                               
 *                                                                 
 *  iZE Co.,Ltd. Copyright 2009 All rights reserved.          
 *  This file is distributed under the terms of the GNU Lesser 
 *  General Public License, described in file LICENSE.                                     
 */

package jp.ize.ux.components;

import jp.ize.ux.UXColor;

// {{{ enum UXTextAlignType {
enum UXTextAlignType {
	LEFT;
	RIGHT;
	CENTER;
}
// }}}
// {{{ enum UXAntiAliasType {
enum UXAntiAliasType {
	/** 通常のアンチエイリアスモードです。*/
	NORMAL;
	/** より細かい指定が可能なモードです。shapenessとticknessをこの順番で指定できます。 */
	ADVANCE( shapness : Int, tickness : Int ); 
}
// }}}
// {{{ enum UXLineModeType {
enum UXLineModeType {
	/** 単行を想定したモードです。*/
	MONO_LINE;
	/**
	 * 複数行を想定したモードです。引数はleadingで、行間に挟む追加のスペースをピクセル単位で
	 * 指定したものです。負の値を指定すると、行間が狭くなります。
	 */
	MULTI_LINE( leading : Int ); 
}
// }}}
// {{{ class UXTextAttribute
/**
 * UXTextAttributeクラス。テキストの表示状態を表現したクラスで、ラベルを受け取ってその属性を管理します。
 *
 * @author		iZE Co., Ltd.<br>
 * @version		$Id$<br>
 */
class UXTextAttribute
{
	// {{{ properties

	private var _body : UXLabel;

	// }}}
	// {{{ public function new( text : UXObject ) 
	/**
	 * ラベルを受け取ってその属性を管理します。
	 */
	public function new( text : UXLabel ) 
	{
	}
	// }}}
	// {{{ public var fontFamily(default, setFontFamily) : String
	/**
	 * フォント名です。
	 */
	public var fontFamily(default, setFontFamily) : String;
	// }}}
	// {{{ public var fontSize(default, setFontSize) : Float
	/**
	 * フォントのサイズをポイントで表現した数字です。
	 */
	public var fontSize(default, setFontSize) : Float;
	// }}}
	// {{{ public var fontBold(default, setFontBold) : Bool
	/**
	 * フォントがボールドかどうかを示します。デフォルトはfalseです。
	 */
	public var fontBold(default, setFontBold) : Bool;
	// }}}
	// {{{ public var fontItalic(default, setFontItalic) : Bool
	/**
	 * フォントがイタリックかどうかを示します。デフォルトはfalseです。
	 */
	public var fontItalic(default, setFontItalic) : Bool;
	// }}}
	// {{{ public var color(default, setColor) : UXColor
	/**
	 * 表示色です。デフォルトは0です。
	 */
	public var color(default, setColor) : UXColor;
	// }}}
	// {{{ public var align(default, setAlign) : UXTextAlignType
	/** 
	 * テキストの表示位置です。デフォルトはLEFTです。
	 */
	public var align(default, setAlign) : UXTextAlignType;
	// }}}
	// {{{ public var kerning(default, setKerning) : Bool
	/**
	 * カーニングを行うかどうかのフラグです。デフォルトはfalseです。
	 */
	public var kerning(default, setKerning) : Bool;
	// }}}	
	// {{{ public var letterSpacing(default, setLetterSpacing) : Int
	/**
	 * 文字毎に挟む追加のスペースをピクセル単位で指定したものです。負の値を指定すると、文字の間隔が狭くなります。デフォルトは0です。
	 */
	public var letterSpacing(default, setLetterSpacing) : Int;
	// }}}
	// {{{ public var leading(default, setLeading) : Int
	/**
	 * 
	 */
	public var leading(default, setLeading) : Int;
	// }}}
	// {{{ public var leftMargin(default, setLeftMargin) : Int
	/**
	 * テキストの左側に取るマージンをピクセル単位で指定したものです。デフォルトは0です。
	 */
	public var leftMargin(default, setLeftMargin) : Int;
	// }}}
	// {{{ public var rightMargin(default, setRightMargin) : Int
	/**
	 * テキストの右側に取るマージンをピクセル単位で指定したものです。デフォルトは0です。
	 */
	public var rightMargin(default, setRightMargin) : Int;
	// }}}
	// {{{ public var antiAlias(default, setAntiAlias) : UXAntiAliasType
	/**
	 * アンチエイリアスです。デフォルトはNORMALです。
	 */
	public var antiAlias(default, setAntiAlias) : UXAntiAliasType;
	// }}}
	// {{{ public var linesMode(default, setLinesMode) : UXLineModeType
	/**
	 * 行モードの指定です。
	 */
	public var linesMode(default, setLinesMode) : UXLineModeType;
	// }}}
	// {{{ public var embedded(default, setEmbedded) : Bool
	/**
	 * このフォントが埋め込みフォントかどうかを示します。
	 */
	public var embedded(default, setEmbedded) : Bool;
	// }}}
	// {{{ private setFontFamily( family : String ) : String
	/**
	 * 表示するテキストを設定します。
	 */
	private function setFontFamily( family : String ) : String
	{
		return family;
	}
	// }}}
	// {{{ private function setFontSize( size : Float ) : Float
	/**
	 * フォントサイズの設定をします。
	 */
	private function setFontSize( size : Float ) : Float
	{
		return size;
	}
	// }}}
	// {{{ private function setFontBold( bold : Bool ) : Bool
	/**
	 * ボールドの設定をします。
	 */
	private function setFontBold( bold : Bool ) : Bool
	{
		return bold;
	}
	// }}}
	// {{{ private function setFontItalic( italic : Bool ) : Bool
	/**
	 * イタリックの設定をします。
	 */

	private function setFontItalic( italic : Bool ) : Bool
	{
		return italic;
	}
	// }}}
	// {{{ private function setColor( color : UXColor ) : UXColor
	/**
	 * 色の設定をします。
	 */
	private function setColor( color : UXColor ) : UXColor
	{
		return color;
	}
	// }}}
	// {{{ private function setAlign( align : UXTextAlignType ) : UXTextAlignType
	/**
	 * 表示位置の設定をします。
	 */
	private function setAlign( align : UXTextAlignType ) : UXTextAlignType
	{
		return align;
	}
	// }}}
	// {{{ private function setKerning( kerning : Bool ) : Bool
	/**
	 * カーニングを行うかどうか設定します。
	 */
	private function setKerning( kerning : Bool ) : Bool
	{
		return kerning;
	}
	// }}}
	// {{{ private function setLetterSpacing( spacing : Int ) : Int
	/**
	 * 文字幅の追加幅を設定します。
	 */
	private function setLetterSpacing( spacing : Int ) : Int
	{
		return spacing;
	}
	// }}}
   	// {{{ private function setLeading( leading : Int ) : Int
	/**
	 * 左端の余白を設定します。
	 */
	private function setLeading( leading : Int ) : Int
	{
		return leading;
	}
	// }}}
	// {{{ private function setLeftMargin( margin : Int ) : Int
	/**
	 * 左側のマージンを設定します。
	 */
	private function setLeftMargin( margin : Int ) : Int
	{
		return margin;
	}
	// }}}
	// {{{ private function setRightMargin( margin : Int ) : Int
	/**
	 * 右側のマージンを設定します。
	 */
	private function setRightMargin( margin : Int ) : Int
	{
		return margin;
	}
	// }}}
	// {{{ private function setAntiAlias( aa : UXAntiAliasType ) : UXAntiAliasType
	/**
	 * アンチエイリアスの属性を設定します。
	 */
	private function setAntiAlias( aa : UXAntiAliasType ) : UXAntiAliasType
	{

		return aa;
	}
	// }}}
	// {{{ private function setLinesMode( mode : UXLineModeType ) : UXLineModeType
	/**
	 * 行の扱いに着いて設定します。
	 */
	private function setLinesMode( mode : UXLineModeType ) : UXLineModeType
	{
		return mode;
	}
	// }}}
	// {{{ private function setEmbedded( emb : Bool ) : Bool
	/**
	 * 使用するフォントは埋め込みフォントかどうかを設定します。
	 */
	private function setEmbedded( emb : Bool ) : Bool
	{
		return emb;
	}
	// }}}
}
// }}}
